package org.jeecg.modules.xxgx.djgl.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.xxgx.djgl.entity.tdyw.*;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Description: 已开单据
 * @Author: jeecg-boot
 * @Date:   2023-09-14
 * @Version: V1.0
 */
@ApiModel(value="cs_xx_ykdj对象", description="已开单据")
@Data
@TableName("cs_xx_ykdj")
public class CsXxYkdj implements Serializable {
    private static final long serialVersionUID = 1L;

	/**编号*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "编号")
    private String id;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
	/**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
	/**租户编号*/
	@Excel(name = "租户编号", width = 15)
    @ApiModelProperty(value = "租户编号")
    private Integer tenantId;
	/**企业主键*/
	@Excel(name = "企业主键", width = 15)
    @ApiModelProperty(value = "企业主键")
    private String companyId;
	/**数据类型*/
	@Excel(name = "数据类型", width = 15)
    @ApiModelProperty(value = "数据类型")
    @Dict(dictTable = "cs_xx_sjlx", dicText = "cname", dicCode = "ccode")
    private String sjlx;
	/**所属业态*/
	@Excel(name = "所属业态", width = 15)
    @ApiModelProperty(value = "所属业态")
    @Dict(dictTable = "cs_xx_ssyt", dicText = "cname", dicCode = "ccode")
    private String sjyt;
	/**数据来源*/
	@Excel(name = "数据来源", width = 15)
    @ApiModelProperty(value = "数据来源")
    @Dict(dictTable = "cs_xx_sjly", dicText = "cname", dicCode = "ccode")
    private String sjly;
	/**单据类型*/
	@Excel(name = "单据类型", width = 15)
    @ApiModelProperty(value = "单据类型")
    @Dict(dictTable = "cs_xx_djlx", dicText = "cname", dicCode = "ccode")
    private String djlx;
	/**处理方式*/
	@Excel(name = "处理方式", width = 15)
    @ApiModelProperty(value = "处理方式")
    @Dict(dicCode = "xxclfs")
    private String clfs;
	/**单据开票类型*/
	@Excel(name = "单据开票类型", width = 15)
    @ApiModelProperty(value = "单据开票类型")
    @Dict(dicCode = "xxkplx")
    private String kplx;
	/**业务单据编号*/
	@Excel(name = "业务单据编号", width = 15)
    @ApiModelProperty(value = "业务单据编号")
    private String ywdjbh;
    /**单据日期*/
    @Excel(name = "单据日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "单据日期")
    private Date djrq;
	/**客户代码*/
	@Excel(name = "客户代码", width = 15)
    @ApiModelProperty(value = "客户代码")
    private String khdm;
	/**客户名称*/
	@Excel(name = "客户名称", width = 15)
    @ApiModelProperty(value = "客户名称")
    private String khmc;
	/**客户税号*/
	@Excel(name = "客户税号", width = 15)
    @ApiModelProperty(value = "客户税号")
    private String khsh;
	/**客户地址*/
	@Excel(name = "客户地址", width = 15)
    @ApiModelProperty(value = "客户地址")
    private String khdz;
	/**客户电话*/
	@Excel(name = "客户电话", width = 15)
    @ApiModelProperty(value = "客户电话")
    private String khdh;
	/**客户开户银行*/
	@Excel(name = "客户开户银行", width = 15)
    @ApiModelProperty(value = "客户开户银行")
    private String khyh;
	/**客户银行卡账号*/
	@Excel(name = "客户银行卡账号", width = 15)
    @ApiModelProperty(value = "客户银行卡账号")
    private String khzh;
	/**发票类型代码*/
	@Excel(name = "发票类型代码", width = 15)
    @ApiModelProperty(value = "发票类型代码")
    @Dict(dicCode = "xxfplxdm")
    private String fplxdm;
	/**特殊票种*/
	@Excel(name = "特殊票种", width = 15)
    @ApiModelProperty(value = "特殊票种")
    @Dict(dicCode = "xxtspz")
    private String tspz;
    /**特定要素类型代码*/
    @Excel(name = "特定要素类型代码", width = 15)
    @ApiModelProperty(value = "特定要素类型代码")
    @Dict(dicCode = "xxtdyw")
    private String tdyslxdm;
	/**征收方式*/
	@Excel(name = "征收方式", width = 15)
    @ApiModelProperty(value = "征收方式")
    @Dict(dicCode = "xxzsfs")
    private String zsfs;
	/**纸质发票标志*/
	@Excel(name = "纸质发票标志", width = 15)
    @ApiModelProperty(value = "纸质发票标志")
    private String zzfpbz;
	/**客户邮箱*/
	@Excel(name = "客户邮箱", width = 15)
    @ApiModelProperty(value = "客户邮箱")
    private String khlxyx;
	/**客户手机*/
	@Excel(name = "客户手机", width = 15)
    @ApiModelProperty(value = "客户手机")
    private String khlxfs;
	/**邮寄地址*/
	@Excel(name = "邮寄地址", width = 15)
    @ApiModelProperty(value = "邮寄地址")
    private String yjdz;
	/**邮寄接收人*/
	@Excel(name = "邮寄接收人", width = 15)
    @ApiModelProperty(value = "邮寄接收人")
    private String yjjsr;
	/**开票终端代码*/
	@Excel(name = "开票终端代码", width = 15)
    @ApiModelProperty(value = "开票终端代码")
    private String kpzddm;
	/**公司代码*/
	@Excel(name = "公司代码", width = 15)
    @ApiModelProperty(value = "公司代码")
    private String gsdm;
	/**销方名称*/
	@Excel(name = "销方名称", width = 15)
    @ApiModelProperty(value = "销方名称")
    private String xfmc;
	/**销方税号*/
	@Excel(name = "销方税号", width = 15)
    @ApiModelProperty(value = "销方税号")
    private String xfsh;
	/**用户代码*/
	@Excel(name = "用户代码", width = 15)
    @ApiModelProperty(value = "用户代码")
    private String yhdm;
	/**开票人*/
	@Excel(name = "开票人", width = 15)
    @ApiModelProperty(value = "开票人")
    private String kpr;
	/**收款人*/
	@Excel(name = "收款人", width = 15)
    @ApiModelProperty(value = "收款人")
    private String skr;
	/**复核人*/
	@Excel(name = "复核人", width = 15)
    @ApiModelProperty(value = "复核人")
    private String fhr;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String bz;
	/**含税标志*/
	@Excel(name = "含税标志", width = 15)
    @ApiModelProperty(value = "含税标志")
    @Dict(dicCode = "xxhsbz")
    private String hsbz;
	/**合计金额*/
	@Excel(name = "合计金额", width = 15)
    @ApiModelProperty(value = "合计金额")
    private java.math.BigDecimal hjje;
	/**合计税额*/
	@Excel(name = "合计税额", width = 15)
    @ApiModelProperty(value = "合计税额")
    private java.math.BigDecimal hjse;
	/**折扣金额*/
	@Excel(name = "折扣金额", width = 15)
    @ApiModelProperty(value = "折扣金额")
    private java.math.BigDecimal zkje;
    /**扣除额*/
    @Excel(name = "扣除额", width = 15)
    @ApiModelProperty(value = "扣除额")
    private java.math.BigDecimal kce;
	/**自动开票标志*/
	@Excel(name = "自动开票标志", width = 15)
    @ApiModelProperty(value = "自动开票标志")
    private String zdkpbz;
    /**购方自然人标识 Y/N*/
    @ApiModelProperty(value = "购方自然人标识 Y/N")
    private String gfzrrbs;
    /**是否展示购方银行账号到备注里面 Y/N*/
    @ApiModelProperty(value = "是否展示购方银行账号到备注里面 Y/N")
    private String sfzsgmfyhzh;
    /**是否展示销方银行账号到备注里面 Y/N*/
    @ApiModelProperty(value = "是否展示销方银行账号到备注里面 Y/N")
    private String sfzsxsfyhzh;

	/**扩展1*/
	@Excel(name = "扩展1", width = 15)
    @ApiModelProperty(value = "扩展1")
    private String kz1;
	/**扩展2*/
	@Excel(name = "扩展2", width = 15)
    @ApiModelProperty(value = "扩展2")
    private String kz2;
	/**扩展3*/
	@Excel(name = "扩展3", width = 15)
    @ApiModelProperty(value = "扩展3")
    private String kz3;
    /**发票代码*/
    @Excel(name = "发票代码", width = 15)
    @ApiModelProperty(value = "发票代码")
    private String fpdm;
    /**发票号码*/
    @Excel(name = "发票号码", width = 15)
    @ApiModelProperty(value = "发票号码")
    private String fphm;
	/**开票时间*/
	@Excel(name = "开票时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "开票时间")
    private Date kprq;
	/**开票状态*/
	@Excel(name = "开票状态", width = 15)
    @ApiModelProperty(value = "开票状态")
    @Dict(dicCode = "xxkpzt")
    private String kpzt;
	/**单据状态*/
	@Excel(name = "单据状态", width = 15)
    @ApiModelProperty(value = "单据状态")
    @Dict(dicCode = "xxdjzt")
    private String djzt;
	/**原单据编号*/
	@Excel(name = "原单据编号", width = 15)
    @ApiModelProperty(value = "原单据编号")
    private String ydjbh;
	/**原发票代码*/
	@Excel(name = "原发票代码", width = 15)
    @ApiModelProperty(value = "原发票代码")
    private String yfpdm;
	/**原发票号码*/
	@Excel(name = "原发票号码", width = 15)
    @ApiModelProperty(value = "原发票号码")
    private String yfphm;
	/**红冲原因*/
	@Excel(name = "红冲原因", width = 15)
    @ApiModelProperty(value = "红冲原因")
    private String hcyy;
    @Excel(name = "红字信息表编号", width = 15)
    @ApiModelProperty(value = "红字信息表编号")
    private java.lang.String hzxxbbh;

    @ApiModelProperty(value = "特定业务--建筑服务")
    @TableField(exist = false)
    Jzfw tdywJzfw;

    /**
     * 特定业务--货物运输服务
     */
    @ApiModelProperty(value = "特定业务--货物运输服务")
    @TableField(exist = false)
    List<Hwysfwmx> tdywHwysfwList;

    /**
     * 特定业务--不动产销售
     */
    @ApiModelProperty(value = "特定业务--不动产销售")
    @TableField(exist = false)
    Bdcxsfw tdywBdcxs;
    /**
     * 特定业务--不动产经营租赁服务
     */
    @ApiModelProperty(value = "特定业务--不动产经营租赁服务")
    @TableField(exist = false)
    Bdcjyzlfw tdywBdcjyzlfw;

    /**
     * 特定业务--旅客运输服务
     */
    @ApiModelProperty(value = "特定业务--旅客运输服务")
    @TableField(exist = false)
    List<Lkysfwmx> tdywLkysfwList;

}
